package de.ramge.android.akad;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.params.CookiePolicy;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.cookie.Cookie;

import android.app.Activity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.Menu;
import android.widget.TextView;

public class AKADAndroidClientActivity extends Activity {

	public String ausgabe = "";

	private void postPage() {
		String str = "***";

		try {
			DefaultHttpClient hc = new DefaultHttpClient();

			List<Cookie> cookies;
		
			cookies = hc.getCookieStore().getCookies();


			ausgabe = ausgabe.concat("====== Init =======\n");
			
					
			
			HttpGet get_init = new HttpGet("http://www.akadvh.de/cgi/WebObjects.dll/AKADFrontend");
			HttpResponse response_init =hc.execute(get_init);
			if (response_init.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
				str = EntityUtils.toString(response_init.getEntity());
			}
			ausgabe = ausgabe.concat(str);
//			HttpEntity entity_init = response_init.getEntity();
//			str = EntityUtils.toString(response_init.getEntity());
			cookies = hc.getCookieStore().getCookies();
			if (cookies.isEmpty()) {
				ausgabe = ausgabe.concat("None");
			} else {
				for (int i = 0; i < cookies.size(); i++) {
					ausgabe = ausgabe.concat(cookies.get(i).toString());
					ausgabe = ausgabe.concat("\n");
				}
			}
			
			
			ausgabe = ausgabe.concat("\n======= Post =======");
					
			HttpPost post = new HttpPost(
					"https://www.akadvh.de/cgi/WebObjects.dll/AKADFrontend.woa/wo/0.6");
			List<NameValuePair> data = new ArrayList<NameValuePair>();
			data.add(new BasicNameValuePair("AnmeldenDeutsch.x", "0"));
			data.add(new BasicNameValuePair("AnmeldenDeutsch.y", "0"));
			data.add(new BasicNameValuePair("language", "de"));
			data.add(new BasicNameValuePair("nickname", "olaf.ramge"));
			data.add(new BasicNameValuePair("password", ""));
			post.setEntity(new UrlEncodedFormEntity(data, HTTP.UTF_8));
			HttpResponse rp = hc.execute(post);
			if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
				str = EntityUtils.toString(rp.getEntity());
			}
			ausgabe = ausgabe.concat(str);
			ausgabe = ausgabe.concat("===== Cookies =====\n");

			cookies = hc.getCookieStore().getCookies();
			if (cookies.isEmpty()) {
				ausgabe = ausgabe.concat("None");
			} else {
				for (int i = 0; i < cookies.size(); i++) {
					ausgabe = ausgabe.concat(cookies.get(i).toString());
					ausgabe = ausgabe.concat("\n");
				}
			}
			ausgabe = ausgabe.concat("===== Erster get ====\n");
			HttpGet get = new HttpGet(
					"https://www.akadvh.de/cgi/WebObjects.dll/AKADFrontend.woa/wo/0.2.6");

			HttpResponse response = hc.execute(get);
			HttpEntity entity = response.getEntity();
			str = EntityUtils.toString(response.getEntity());
			ausgabe = ausgabe.concat("===== Cookies =====\n");

			cookies = hc.getCookieStore().getCookies();
			if (cookies.isEmpty()) {
				ausgabe = ausgabe.concat("None");
			} else {
				for (int i = 0; i < cookies.size(); i++) {
					ausgabe = ausgabe.concat(cookies.get(i).toString());
					ausgabe = ausgabe.concat("\n");
				}
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
		ausgabe = ausgabe.concat(str);
	}



	/** Id des Menue eintrags. */
	public static final int AUSRECHNEN_ID = Menu.FIRST;

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0, AUSRECHNEN_ID, Menu.NONE, "Umrechnen");
		return super.onCreateOptionsMenu(menu);
	}

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		TextView txt = (TextView) findViewById(R.id.textView1);
		txt.setMovementMethod(new ScrollingMovementMethod());
		postPage();
		txt.setText(ausgabe);
	}
}